Conventional programmable logic devices often have output registers in order to store the value of one or more output functions of their programmable logic matrices. Recently, multiplexers have been added to these output cells for selecting between a registered output, or an output from a respective output register, or an unregistered or combinatorial output directly from the logic matrix. Typically, these multiplexers are controlled by an architectural fuse that selects between registered and nonregistered outputs according to whether the fuse is blown or left intact. The programming for registered and nonregistered outputs is therefore permanent. Using conventional devices, therefore, the logic designer must resort to different output cells in order to have both registered and nonregistered outputs. This uses up output pins that would otherwise be available to output further combinatorial logic functions, and the device is less than optionally versatile as a result.
A need therefore exists for a programmable logic device having output cells that can be programmed to reversibly select between registered and nonregistered outputs.